<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
  <title>tv_grab_nl_py : een xmltv compatibele grabber (voorheen tv_grab_nl_pdb)</title>
<style type="text/css">
body {
  background-color : #ffffff;
  color : #000000;
  margin : 0px 0px 0px 0px;
}
#content {
  background-color : #ffffff;
  position : absolute;
  left : 160px;
  top : 0px;
}
#leftnav {
  position : fixed;
  width : 150px;
  height : 100%; 
  border-right : 2px solid #000;
  margin-right : 15px;
  padding-bottom : 20px;
  background-color : #cccccc;
}
</style>
</head>
<body topmargin="0" leftmargin="0">

<div id="leftnav">
<h1>Menu</h1>
<ul>
  <li><a href="#top">top</a></li>
  <li><a href="#nieuws">nieuws</a></li>
  <li><a href="#download">download</a></li>
  <li><a href="#installatie">installatie</a></li>
  <li><a href="#gebruik">gebruik</a></li>
  <li><a href="#problemen">problemen</a></li>
  <li><a href="#contact">contact</a></li>
</ul>

</div>

<div id="content">

<a name="top"<h2>tv_grab_nl_py</h2></a>

<p>tv_grab_nl_py is een <a
href="http://membled.com/work/apps/xmltv/">xmltv</a>-compatibele grabber
geschreven in <a href="http://www.python.org">python</a>
die TV-programmainformatie ophaalt bij <a
href="http://www.tvgids.nl">TVGids</a>. Prettige eigenschappen van deze
grabber zijn:
<ul>
<li>detailinformatie wordt gecached</li>
<li>categorie-informatie wordt geconverteerd zodat de kleurcodering
werkt in de EPG van <a href="http://www.mythtv.org">MythTV</a></li>
<li>instelbaar aantal dagen dat met detailinformatie wordt opgehaald</li>
<li>links naar zenderlogo's worden automatisch toegevoegd.
</ul>
</p>

<a name="nieuws"<h2>nieuws</h2></a>

<p>
<ul>
<li><tt>2007/11/17</tt> Versie 58 is uit, verhelpt probleem met
user-agent.
<li><tt>2007/10/27</tt> Versie 56 is uit met 2 kleine fixes. Een patch van
Han Holl die extra controleert op het verwijderen van programma's die
eindigen voor ze beginnen. En een fix van Martijn Brekhof voor een niet
geinitialiseerde variabele die soms ervoor zorgde dat de grabber
voortijdig eindigde met grabben.
<li><tt>2007/08/29</tt> Versie 53 is uit, 2 kleine fixes volgens de
xmltv dtd (stereo en aspect ratio), met dank aan Han Holl.
<li><tt>2007/08/26</tt> Versie 50 is uit, vergeten patch van Ian
MacDonald voor het verwijderen van gesponsorde links toe te passen.
<li><tt>2007/08/26</tt> Versie 48 is uit, patch van Ian MacDonald voor
de description lengths en twee nieuwe logo's (Comedy Central en RTL 8). 
<li><tt>2007/03/06</tt> Versie 44 is uit, fix voor de tijdzonenamen
onder windows (het is nu generiek opgelost voor elk platform), fix voor
lege programmanamen, en omroep Fryslan toegevoegd aan de logo's.
<li><tt>2007/03/06</tt> Versie 41 is uit, patch van Huub Bouma met fix
voor probleem waarbij te weinig data wordt opgehaald (--offset
probleem). 
<li><tt>2007/02/25</tt> Versie 39 is uit, de patches die waren gepost
naar de mailinglist zijn toegepast plus nog wat andere kleine fixes.
<li><tt>2006/09/26</tt> Versie 34 is uit, het TVWest logo wordt nu correct
opgehaald, en het TVNoord logo is toegevoegd (dank aan Huub Bouma).
<li><tt>2006/09/19</tt> Versie 32 is uit, een minieme wijzing in de naam
van Spice (Francesco Peeters). Verder was er een klein hikje bij tvgids,
maar dat <em>lijkt</em> opgelost te zijn. En er is nu een <a
href="http://pwdebruin.net/mailman/listinfo/tv_grab_nl_py_pwdebruin.net">mailinglist</a>
voor announcements, discussie en patches.
<li><tt>2006/08/27</tt> Versie 30 is uit. Kleine wijziging (1 regel)
waardoor speciale karakters in descriptions niet meer de boel kunnen
laten crashen. Dank aan Daniel Polak voor het melden.
<li><tt>2006/08/08</tt> Versie 28 is uit. Michael Heus en ik hebben
alles robuuster gemaakt voor mogelijke overlaps, maar er is natuurlijk een grens aan wat er
gedaan kan worden aan de soms wel heel erg lastig te interpreteren data
van tvgids.nl. In deze versie worden overlaps gecorrigeerd voor zover
mogelijk. Standaard is de overlapstrategie zoals aangegeven als
hieronder bij versie 23, maar er is ook de mogelijkheid om de eindtijd
of de starttijd leidend te laten zijn. Zie de source en beneden voor meer
informatie (--max_overlap en --overlap_strategy). Verder is een gedeelte
van de code voor het plaatsen van programma's op de juiste datum
herschreven. Voordeel is dat er nu geen problemen meer zijn rond een
dagovergang. <strong>Nadeel is dat python versie >= 2.3 nu nodig is
vanwege de datetime module</strong>.
<li><tt>2006/08/01</tt> Versie 23 "Het Overlapfestival" - is uit. Het is
bij tvgids.nl ook vakantie en er zijn flink wat gevallen waar de
begintijd van een programma een paar minuten voor de eindtijd van het
vorige programma ligt. Het gevolg is dat mythfilldatabase programmering
weigert. In deze nieuwe versie wordt het overlappende interval gehalveerd 
en de eind- en begintijd worden aangepast:
<pre>
        # 10:55 - 12:00 Lala
        # 11:55 - 12:20 Wawa
        # word:
        # 10:55 - 11.57 Lala
        # 11:57 - 12:20 Wawa
        # 
        # en ook:
        # 
        # 10:55 - 11:50 Lala
        # 12:00 - 12:20 Wawa
        # wordt:
        # 10:55 - 11.55 Lala
        # 11:55 - 12:20 Wawa
</pre>
De maximale grootte van het te beschouwen interval is in te stellen met
de globale variabele "max_overlap" die default op 10 minuten staat.

<li><tt>2006/07/16</tt> Versie 19 "Het Schlagerfestival" - is uit. Bij
het afkappen van lange beschrijvingen werd er soms misgeknipt (dank aan
Michael Heus). 

<li><tt>2006/02/02</tt>
Versie 12 is uit. Geen grote wijzigingen, alleen drie kleine
robustificerende aanpassingen (met dank aan Huub Bouma, Bart Post en
Sander Tuit).

<li><tt>2006/01/07</tt>
Versie 9 is uit. Michael Heus had een iets mooiere fix voor het
eindtijdenprobleem.
<li><tt>2006/01/07</tt>
Versie 8 is uit. 
Fix om kanalen waar alleen maar begintijden worden gegeven te lezen (RTL
7, the Box, Nickelodeon etc.).
Fixlet van Michael Heus voor betere filmdetectie.
</li>

<li><tt>2005/12/18</tt>
tv_grab_nl_pdb is verherbenoemd naar tv_grab_nl_py. Het blijft een niet
echt lekker bekkende naam, maar aangezien steeds meer mensen een bijdrage
leveren aan het scriptje en ik altijd al een hekel heb gehad aan het
gebruiken van mijn initialen is het nu tv_grab_nl_py geworden.
Tegelijkertijd ben ik overgestapt van CVS naar SVN waardoor ook de
versienummering anders wordt. De laatste versie van tv_grab_nl_pdb is
0.48, de eerste versie van tv_grab_nl_py is 7. 
</li>
<li>In deze nieuwe versie is de overlapdetectie behoorlijk verbeterd,
meer informatie over het programma (zoals
acteur/actrice/presentator/stereo/breedbeeld/teletekst) wordt
overgenomen en de filmdetectie is beter.
<li>
De belangrijkste verandering voor de gebruiker is dat de zenderconfiguratie niet meer
standaard in
<tt>tv_grab_nl_pdb.conf</tt>, maar in <tt>tv_grab_nl_py.conf</tt> staat.
Alleen de naam is veranderd, dus upgraden is een kwestie van simpel een
kopie maken.
</li>
</ul>
</p>

<a name="download"><h2>download</h2></a>

Alle voorgaande versies zijn <a href="download">hier</a> hier te vinden.
De nieuwste versie is <a href="download/tv_grab_nl_py">tv_grab_nl_py</a>. 

<a name="installatie"><h2>installatie</h2></a>

<h3>algemeen</h3>

<ul>
<li>Download de laatste versie en hernoem deze zo nodig naar <tt>tv_grab_nl_py</tt></li>
<li>Maak een backup van je bestaande grabber: <tt>mv /usr/bin/tv_grab_nl
    /usr/bin/tv_grab_nl.backup</tt></li>

<li>Maak een symlink naar de nieuwe grabber: <tt>ln -s
    /waar/ik/de/grabber/neerzet/tv_grab_nl_py /usr/bin/tv_grab_nl</tt></li>

<li>Maak de grabber executable: <tt>chmod ugo+x /waar/ik/de/grabber/neerzet/tv_grab_nl_py</tt></li>
</ul>

<h3>configuratie</h3>

<ul>
<li>Haal de lijst met tv kanalen op: <tt>tv_grab_nl_py --configure</tt>
 of: <tt>tv_grab_nl --configure</tt> al naar gelang hoe een en ander
gesymlinked is.</li>

<li>De lijst wordt standaard neergezet in:
<tt>${HOME}/.xmltv/tv_grab_nl_py.conf</tt>, als die directory niet
bestaat dan wordt deze automatisch aangemaakt. Alternatief is de
<tt>--config-file</tt> optie.

<li>Edit de gedownloade lijst, haal de regels met kanalen die je niet
wilt grabben weg of zet er een <tt>#</tt> voor</li>

<li>De eerste keer kan de grabber er een behoorlijke tijd over doen om
detailinformatie op te halen. Het beste kun je eerst de informatie
ophalen in fast mode (<tt>--slow=0</tt>), dan heb je snel een overzicht (maar
zonder detailinformatie). Daarna kun je de grabber aanzetten om alles op
te halen. De opgehaalde informatie wordt gecached, en de volgende keer zal het
aanmerkelijk sneller gaan. Om een idee te geven: ik haal voor 21 kanalen
informatie op en dit duurt ongeveer 24 minuten. 

</ul>

<h3>opties</h3>

<ul>
<li><tt>tv_grab_nl_py --help</tt>
<li> Als je voorheen <tt>tv_grab_nl</tt> gebruikte, geef dan de
<tt>--compat</tt> optie mee of zet <tt>compat = 1</tt> in het script
(zo rond regel 953), dan worden de correcte xmltvid's gegenereerd.
<li>Standaard worden logo's automatisch toegevoegd aan de xmldata. De
optie is <tt>--logos=1</tt> of zet <tt>logos = 1</tt>, uitzetten kan natuurlijk ook. 
Let op: mythfilldatabase trekt de logo's binnen en zet ze neer in
<tt>${HOME}/.mythtv/channels</tt> (dus, de homedirectory van de user die
mythfilldatabase draait). Oude logo's worden niet overschreven, dus als
je al je logo's nieuw wilt hebben maak dan deze directory even leeg.
Met dank aan Michel van der Laan zijn er de volgende logo's:<br><br>
 <img src="../logos/gif/30x30/animal-planet.gif">
 <img src="../logos/gif/30x30/animal-planet-simple.gif">
 <img src="../logos/gif/30x30/ard.gif">
 <img src="../logos/gif/30x30/at5.gif">
 <img src="../logos/gif/30x30/bbc1.gif">
 <img src="../logos/gif/30x30/bbc2.gif">
 <img src="../logos/gif/30x30/bbc3.gif">
 <img src="../logos/gif/30x30/bbc4.gif">
 <img src="../logos/gif/30x30/bbc-world.gif">
 <img src="../logos/gif/30x30/bvn.gif">
 <img src="../logos/gif/30x30/canal+blue.gif">
 <img src="../logos/gif/30x30/canal+.gif">
 <img src="../logos/gif/30x30/canal+red.gif">
 <img src="../logos/gif/30x30/canal+yellow.gif">
 <img src="../logos/gif/30x30/canvas_color.gif">
 <img src="../logos/gif/30x30/canvas-mono.gif">
 <img src="../logos/gif/30x30/canvas-text.gif">
 <img src="../logos/gif/30x30/cartoonnetwork.gif">
 <img src="../logos/gif/30x30/cn.gif">
 <img src="../logos/gif/30x30/cnn.gif">
 <img src="../logos/gif/30x30/discover-spacey.gif">
 <img src="../logos/gif/30x30/discovery-color.gif">
 <img src="../logos/gif/30x30/discovery-mono.gif">
 <img src="../logos/gif/30x30/een.gif">
 <img src="../logos/gif/30x30/mtv-color.gif">
 <img src="../logos/gif/30x30/mtv-mono.gif">
 <img src="../logos/gif/30x30/ned1.gif">
 <img src="../logos/gif/30x30/ned2.gif">
 <img src="../logos/gif/30x30/ned3.gif">
 <img src="../logos/gif/30x30/net5.gif">
 <img src="../logos/gif/30x30/ngc.gif">
 <img src="../logos/gif/30x30/ngc-red.gif">
 <img src="../logos/gif/30x30/rai.gif">
 <img src="../logos/gif/30x30/rtl4.gif">
 <img src="../logos/gif/30x30/rtl5.gif">
 <img src="../logos/gif/30x30/rtl7.gif">
 <img src="../logos/gif/30x30/rtvnh.gif">
 <img src="../logos/gif/30x30/rtvu.gif">
 <img src="../logos/gif/30x30/rtvu-simple.gif">
 <img src="../logos/gif/30x30/sbs6.gif">
 <img src="../logos/gif/30x30/talpa-mono.gif">
 <img src="../logos/gif/30x30/tmf.gif">
 <img src="../logos/gif/30x30/trt.gif">
 <img src="../logos/gif/30x30/tv5.gif">
 <img src="../logos/gif/30x30/veronica-full.gif">
 <img src="../logos/gif/30x30/veronica.gif">
 <img src="../logos/gif/30x30/wdr.gif">
 <img src="../logos/gif/30x30/zdf.gif">
 <img src="../logos/gif/30x30/zdf-simple.gif">
</li>
<li> <tt>--max_overlap</tt> de maximale lengte van de positieve of
negative overlap in minuten die nog gecorrigeerd zal worden. Standaard
10 minuten.
</li>
<li> <tt>--overlap_strategy</tt> de strategie die wordt gevolgd bij het
corrigeren van een overlap:
<ul>
<li> <tt>"average"</tt> (default), middel het overlappende interval
en pas de begin- en eindtijden van de omliggende programma's aan
<li><tt>"stop"</tt> de eindtijd van het eerste programma is leidend, dit
is een handige strategie om te gebruiken om iets meer kans te hebben het
einde van een programma te vangen
<li><tt>"start"</tt> de starttijd van het tweede programma is leidend, dit
is een handige strategie om iets meer kans te hebben het begin van een
programma te vangen.
<li><tt>"none"</tt> doe niets met overlappende programma's. De kans is
groot dat een gedeelte van de programmering door mythfilldatabase
niet geaccepteerd wordt.
</li>
</ul>
</ul>

<h3>configuratie-opties</h3>

<ul>

<LI> Optioneel kun je <tt>cron</tt> gebruiken om dagelijks de informatie
te verversen:
        <UL>
        <LI> Save het volgende stukje in <tt>~/bin/mythfilldatabasecron</tt>
        <pre>
        #!/bin/bash
        export QTDIR=/usr/lib/qt3
        /usr/local/bin/mythfilldatabase
        </pre>
        <LI> Edit de crontab: <tt>crontab -e</tt> en voeg een regel toe
	met:
        <pre>24 05 * * * /home/paul/bin/mythfilldatabasecron</pre>
        </UL>
        <LI> Klaar!
</ul>


<a name="problemen"<h2>problemen</h2></a>

<ul>
<li> <em>"Mijn data is een dag verschoven."</em><br> 
     Dit kan komen doordat de grabber draait tussen 00:00 en 04:00. Op die tijden gaat tvgids er nog
     van uit dat je data voor "vandaag" wilt hebben. Je krijg dan precies een
     dag verschoven de data binnen. Simpele oplossing is om ergens na 04:00 te
     grabben. </li>
<li> <em>"Er komt geen data binnen via mythfilldatabase, en hij download wel alles."</em><br> 
     Waarschijnlijk gebruikte je eerst <tt>tv_grab_nl</tt>? Gebruik de
     --compat flag of edit het script en zet <tt>compat = 1</tt>. Dit
     zorgt ervoor dat de xmltvid volgens <tt>tv_grab_nl</tt> standaard
     wordt doorgegeven.</li>
<li> ... suggesties? </li>
</ul>


<a name="contact"<h2>contact</h2></a>

<ul>
<li> Suggesties, problemen, patches, etc. kun je mailen naar <tt>paul|at|pwdebruin|dot|net</tt></li>
<li> De <a
href="http://pwdebruin.net/mailman/listinfo/tv_grab_nl_py_pwdebruin.net">mailinglist</a>
kan misschien helpen.
<li> De laatste grote verbeteringen zijn toegevoegd door Michael Heus
(regisseur, acteur, presentatorinformatie, overlapverwijdering, tips
van tvgids, stereo, breedbeeld, zwart-wit, en betere filmdetectie).
<li> De logo's komen uit de collectie van Michel van der Laan 
</ul>
Andere mensen die
een bijdrage hebben geleverd zijn: Huub Bouma, Roy van der Kuil, Remco
Rotteveel, Mark Wormgoor, Dennis van Onselen en Hugo van der Kooij.

</div>

</body>
</html>
